package com.gzq.factorymethod.exam15;

import java.lang.reflect.InvocationTargetException;

/**
 * 
 * 工厂方法，定一个创建对象的接口，尤其子类觉得具体实例化那个对象。工厂方法将类的实例化延迟到其子类。
 * 
 * 简单工厂方法（静态工厂方法） 多工厂 单例工厂 延迟初始化工厂
 * 
 * 
 * @author Administrator
 *
 */
public class TianDaoMain {
	public static void main(String[] args)
			throws InstantiationException, IllegalAccessException,
			IllegalArgumentException, InvocationTargetException,
			NoSuchMethodException, SecurityException {
		IBaGuaLu baGuaLu = new BaGuaLuImpl();
		baGuaLu.create(YellowHumanImpl.class).race();
		baGuaLu.create(WhiteHumanImpl.class).race();
	}
}
